1. Field of the Invention
The present invention relates to the field of storage and retrieval of digital encoding information such as audio/video material. More specifically, the present invention relates to the field of retrieving contents of a recorded digital file without prior knowledge of the encoding format of the recorded digital file.
2. Related Art
Audio/visual (AV) material is increasingly stored, transmitted and rendered using digital data. Digital video representation of AV material facilitates its usage with computer controlled electronics and also facilitates high quality image and sound reproduction. Digital AV material is typically compressed (xe2x80x9cencodedxe2x80x9d) in order to reduce the computer resources required to store and transmit the digital data. The systems that transmit multimedia content encode and/or compress the content to use their transmission channel efficiently because the size of the multimedia content, especially video, is very large. Digital AV material can be encoded using a number of well known standards including; for example, the DV (Digital Video) standard, the MPEG (Motion Picture Expert Group) standard, the JPEG standard, the H.261 standard, the H.263 standard, the MiniDisk standard, the, CD standard and the Motion JPEG standard to name a few. As expected, the encoding standards also specify the associated decoding processes as well. The multimedia contents are typically stored on the storage media and are transmitted as bitstreams than can be packetized.
The MPEG format is a compression standard for audio, video and graphics information and includes, for example, MPEG1, 2, 4 and 7. it is standardized in the ISO-IEC/JTC1/SC29/WG11 documents. For instance, MPEG1 is the standard for encoding audio and video data for storage on CD-ROM devices(compact disc read only memory). The MPEG1 specification is described in the IS-11393 standard. The MPEG2 format is the standard for encoding, decoding and transmitting audio/video data for storage media, e.g., DVD (digital video disc), etc., and also for digital broadcasts. MPEG2 supports interlaced video and is therefore used for high quality video displaying on TV units. The MPEG2 specification is described in IS-13818. The MPEG4 standard is used for encoding, decoding and transmitting audio, video and computer graphics data. It supports content based bitstream manipulation and representation. The specification is described in IS14496. MPEG7, currently under standardization, pertains to meta information of multimedia (MM) contents. The example of the meta data is data that describes or is related to the MM contents, such as, identification and/or other descriptions of the author, producer information, directors, actors, etc. The draft specifications for MPEG7 are described in the ISO-IEC-JTC1/SC29/WG11 documents.
The H.261 and H.263 standards of compression are for audio and visual data. These standards are described by the ITU-T (International Telecommunication Union). The H.261 standard is used for TV conference systems, while the H.263 standard is used for mobile communication. The H.261 and H.263 standards adopt the hybrid coding of Motion Compensation (MC) and Discrete Cosine Transform (DCT). The details of these specifications are described in ITU-T recommendations which- are well known. JPEG is the compression standard used for still images. It is standardized in ISO-IEC/JTC1/SC29/WG1 documents. The JPEG standard uses transform coding (DCT) as is also used in the JPEG standard. The WG1 is standardizing JPEG2000, which is a more efficient encoding technology for still image processing. The JPEG2000 standard uses wavelet transformation. Motion JPEG is the defacto standard for video processing. In Motion JPEG, each frame of the video is encoded by JPEG. It is used in the Digital Video (DV) standard, which is used in the market today. Interframe correlation is not used for the compression.
Digital information encoded in any of the above discussed formats can be stored magnetically and/or optically on storage media often called xe2x80x9cdisk media.xe2x80x9d The digital storage media can be removable, as in the case of a floppy disk or optical compact disk (CD) or the media can be non-removable such as the platters of a hard disk. A data retrieval problem occurs, however, when digital files of various encoding formats are allowed to be stored on the same disk. More specifically, it is very difficult to access a particular portion of a stored file (e.g., a particular location in time of the material) when files of different formats are stored on the same disk in part because the bit rates for the various encoding formats are different.
FIG. 1 illustrates a chart 10 of the average bit rates (bandwidth) for different MPEG-II encoding formats and also illustrates the bit rate for DV, MiniDisk and CD formats. FIG. 1 also illustrates, for each format, the maximum storage for a storage medium having a capacity of 27.0 Gigabytes. As seen by these bit rates, different types of video and/or audio formats occupy a different amount of space on the hard drive because their bit rates are different. For instance, the first MPEG II format uses 2Mbit/sec and can store 30 hours, 1 minute on a media (with a 27 Gbyte capacity) but the last MPEG II format can store 3 hours, 6 minutes on the same media. Under a single retrieval format, the drive can use its knowledge of the bit rate for a particular file format to compute a location in time for that file. However, one disadvantage of this method is that a retrieval format for one encoding type will not work with other formats because the bit rates are different. This solution is not acceptable for disk systems that store files of different formats on the same disk.
Another problem is introduced when dealing with formats that have average bit rates, such as MPEG. For MPEG II, the bit rates specified in FIG. 1 are only the average bit rates for the files and individual bit rates for various file portions can be larger or smaller than this value. As a result, the type of computation described above can be very inaccurate thereby requiring a degree of padding when seeking to a desired location in time of the file. For instance, if a disk drive knows that a particular file is encoded using a particular MPEG format (e.g., because the drive only stores files of one format), then it can use the average bit rate value to seek to a position near a desired playback location. However, because the bit rates are only average rates, the drive typically then seeks backward in the file some predetermined amount (xe2x80x9cpaddingxe2x80x9d) in order to ensure that the desired playback position is not missed. Unfortunately, using this prior art retrieval process, a certain amount of extra file contents (padding) are supplied to the decoder unit and then the decoder unit looks to discover the actual playback position. This generally creates an unwanted and noticeable delay in obtaining the desired file contents.
The type of delay described above can be reduced by including complex decoder circuits in each drive that can quickly seek to the desired location by decoding the file contents and seeking forward or backward for the desired location on the disk. However, this is a costly approach because a separate decoder circuit is required for each file format that the drive could accept. Not only is this approach costly, but it is not expandable to cover other, future, file formats not yet adopted or suggested.
Accordingly, what is needed is a generic disk drive storage and retrieval system that can accurately seek to a desired location in a digital file without knowing, prior, the encoding format of the file. A generic storage and retrieval system is well suited for disk systems that store files of different formats on the same disk. What is also needed is a generic storage and retrieval system that can accurately seek to the desired file location without causing a noticeable delay in obtaining the file contents. What is needed yet is a generic storage and retrieval system that is not costly and does not require separate and complex decoder units for each different file format that the disk drive accepts. The present invention provides these advantages and others not specifically mentioned above but described in the sections to follow.
A method and system are disclosed for locating contents of a recorded digital audio/video file without knowing the encoding format used for the digital audio/video file. The method and system can be implemented on a disk drive, e.g., magnetic or optical, or any suitable storage mechanism. A bus timer is used for periodically generating a cycle count in synchronization with isochronous packets that are also on the bus. The disk drive receives these cycle counts with an isochronous digital packet and stores both the cycle count and the digital packet together on a storage media, e.g., magnetic or optical or memory array, etc. When the cycle count value reaches a predetermined number of increments, a seconds measure is incremented thereby updating a minute and hour measure (as necessary). The updated hour/minute/second value is then stored in an entry of an index table along with the logical block address (LBA) of the currently stored data packet. This continues until the file is completely recorded on the disk. Retrieval of a particular hour/minute/second of the file can then be readily accomplished by referencing the index table and obtaining the appropriate LBA without requiring knowledge of the particular encoding format used by the file. The index table is stored in the file system and associated with the particular file (track). The recorded cycle counts can be used as an offset to obtain a particular frame when frame accuracy is required. In one embodiment, the IEEE 1394 communication bus is used which generates one cycle count every 125 us. The drive maintains its own file system and can dump data on the bus and store information without requiring continuous operational control from an intelligent device, such as a computer system.
More specifically, an embodiment of the present invention includes a method of storing contents of a digital file onto a storage medium having the steps of: a) receiving the contents of the digital file in isochronous packets wherein each isochronous packet is accompanied by a respective timer count; b) storing the isochronous packets with their respective timer counts onto the storage medium; c) provided the timer count exceeds a predetermined count, generating a new entry in an index table that is associated with the digital file, the step c) comprising the steps of: c1) updating a time measure; c2) obtaining a logical block address at which the most recent isochronous packet was stored by step b); and c3) recording the time measure along with the logical block address into the new entry. Embodiments include the above and wherein the storage medium is a magnetic disk or an optical disk. Embodiments also include the above and further comprising the step of d) causing a bus interface to increment the timer count upon each isochronous packet and generating a signal (e.g., an interrupt) upon the timer count exceeding the predetermined count to invoke step c). Embodiments also include a disk drive implemented in accordance with the above storage method.
An embodiment also include, in a disk drive, a method of retrieving a portion of a digital file from a storage medium having the steps of: a) receiving a file location comprising a time measure; b) indexing, within a memory, an index table to obtain a logical block address associated with the time measure, the index table comprising a plurality of entries each associating a respective time measure with a respective logical block address; c) on the storage medium, seeking within the digital file to the logical block address associated with the time measure; d) storing, into a memory, a portion of the digital file commencing at the logical block address; and e) transmitting the portion of the digital file within the memory onto a bus. Embodiments also include the above and wherein the digital file comprises a plurality of discrete packets each discrete packet having an associated count value stored therewith on the storage medium and wherein the file location also comprises a frame offset value and further comprising the step of converting the frame offset value into a timer count value (such step can occur inside or outside the drive) and wherein the step e) comprises the steps of: e1) searching, in the memory, through the portion of the digital file until a point where a count corresponding to the timer count value is located within the digital file; and e2) transmitting the portion of the digital file on the bus commencing at the point discovered by step e1). Embodiments also include a disk drive implemented in accordance with the above retrieval method.